
int u[2][100][100][100];

int main() {
  int N = 100, T = 100;
  int i, j, t, k;

  /* 7-point stencil */
#pragma scop
  for (t = 1; t <= T - 1; t++) {
    for (i = 0; i <= N - 1; i++) {
      for (j = 0; j <= N - 1; j++) {
        for (k = 0; k <= N - 1; k++) {
          u[t % 2][i][j][k] =
              u[(t - 1) % 2][i == 0 ? N - 1 : i - 1][j][k] +
              u[(t - 1) % 2][i][j][k] +
              u[(t - 1) % 2][i == N - 1 ? 0 : i + 1][j][k] +
              u[(t - 1) % 2][i == 0 ? N - 1 : i - 1][j == 0 ? N - 1 : j - 1]
               [k] +
              u[(t - 1) % 2][i == N - 1 ? 0 : i + 1][j == N - 1 ? 0 : j + 1]
               [k] +
              u[(t - 1) % 2][i == 0 ? N - 1 : i - 1][j == N - 1 ? 0 : j + 1]
               [k] +
              u[(t - 1) % 2][i == N - 1 ? 0 : i + 1][j == 0 ? N - 1 : j - 1]
               [k] +
              u[(t - 1) % 2][i][j == 0 ? N - 1 : j - 1][k] +
              u[(t - 1) % 2][i][j == N - 1 ? 0 : j + 1][k] +
              u[(t - 1) % 2][i][j][k == 0 ? N - 1 : k - 1] +
              u[(t - 1) % 2][i][j][k == N - 1 ? 0 : k + 1] +
              u[(t - 1) % 2][i][j == 0 ? N - 1 : j - 1]
               [k == 0 ? N - 1 : k - 1] +
              u[(t - 1) % 2][i][j == N - 1 ? 0 : j + 1]
               [k == N - 1 ? 0 : k + 1] +
              u[(t - 1) % 2][i == 0 ? N - 1 : i - 1][j]
               [k == 0 ? N - 1 : k - 1] +
              u[(t - 1) % 2][i == N - 1 ? 0 : i + 1][j][k == N - 1 ? 0 : k + 1];
        }
      }
    }
  }
#pragma endscop

  return (int)u[T - 1][1][1][1];
}
